local self = {}GInterface.Argument = GInterface.MakeConstructor (self)function self:ctor (method, type, name)	self.Method = method	self.Type = type	self.Name = name		self.Nilable = false	self.CallbackMethod = nilendfunction self:CanBeNil ()	return self.Nilableendfunction self:IsCallback ()	return self.CallbackMethod ~= nilendfunction self:End ()	return self.Methodendfunction self:PushCallback ()	if not self:IsCallback () then		self:SetIsCallback (true)	end	return self.CallbackMethodendfunction self:SetCanBeNil (canBeNil)	self.Nilable = true	return selfendfunction self:SetIsCallback (isCallback)	if isCallback then		self.CallbackMethod = self.CallbackMethod or GInterface.CallbackMethod (self.Name, self)	else		self.CallbackMethod = nil	end	return selfend